/**
 * 生成基础axios对象，并对请求和响应做处理
 * 前后端约定接口返回解构规范
 * {
 *    code:0,
 *    data:"成功",
 *    message:""
 * }
 */
import axios from 'axios'
import { Message,Loading  } from "element-ui";
const ConfigBaseURL = 'http://localhost:8080/api/'
let loadingInstance = null //这里是loading

// 创建一个独立的axios实例
export const service = axios.create({
    // 设置baseUr地址,如果通过proxy跨域可直接填写base地址
    baseURL: ConfigBaseURL,
    // 定义统一的请求头部
    headers: {
        "Content-Type": "application/json;charset=UTF-8"
    },
    // 配置请求超时时间
    timeout: 10000,
    method: 'post',
});
// 请求拦截
service.interceptors.request.use(config => {
    loadingInstance = Loading.service({
        lock: true,
        text: 'loading...'
    })
    return config
});
// 添加响应拦截器
service.interceptors.request.use((response) => {
    loadingInstance.close()
    // 获取接口返回结果
    const res = response.data;
    /* // 获取接口返回结果
    if (res.code === 0) {
        return res;
    } else if (res.code === 200) {
        // 200假设是未登录状态码
       Message.warning(res.message);
       // 也可使用router进行跳转
       window.location.href = '/#/login';
       return res;
   } else {
       // 错误显示可在service中控制，因为某些场景我们不想要展示错误
       // Message.error(res.message);
       return res;
   } */
    return res;
}, (error) => {

    console.log('TCL: error', error)
    const msg = error.Message !== undefined ? error.Message : ''
    Message({
        message: '网络错误' + msg,
        type: 'error',
        duration: 3 * 1000
    })
    loadingInstance.close()
    return Promise.reject(error)
});
